﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DAL
{
  public partial  class UI
    {
        public int getidAnterior(dbGestionDataContext _db, int idinternal, int idProyecto)
        {
            int intAnterior = 0;

            int c = _db.UIs.Where(p => p.idInternal < idinternal & p.Etapa.idProyecto == idProyecto).Count();
            if (c == 0)
            {
                throw new Exception("No existe Registros");
            }
            else
            {


                intAnterior = _db.UIs.Where(a => a.idInternal < idinternal & a.Etapa.idProyecto == idProyecto).Max(a => a.idInternal);

            }


            return idinternal;

        }
        public int getidSiguiente(dbGestionDataContext _db, int idinternal, int idProyecto)
        {
            int intSiguiente = 0;

            //revisar la sentencia generada

            int c = _db.UIs.Where(p => p.idInternal > idinternal & p.Etapa.idProyecto== idProyecto).Count();

            if (c == 0)
            {
                throw new Exception("No existe Registros");
            }
            else
            {
                intSiguiente = _db.UIs.Where(p => p.idInternal > idinternal & p.Etapa.idProyecto== idProyecto).OrderBy(p=>p.descripcion).Min(a => a.idInternal);
            }

            return idinternal;
        }
        public bool SetAdd(dbGestionDataContext _db,
                    string	codigo,
                    string	descripcion,
                   
                    int idTipoUI,
                    int	idLocalizacion,
                    int	idTipoBloquePiso,
                    int	idTipoModelo,
                    int	idEtapa,
                    int	idEstado,
                    string	comentario,
                    int	plazoMaxEntrega,
                    DateTime fechaFin,
                    bool	bitActivo,
                    string	numPartida,
                    string	direccion,
                    string	referencia,
                    string	urbanizacion,
                    int idAtributo,
                    int	idMoneda,
                    decimal	precio,
                    decimal?	areaTerreno,
                    decimal?	areaTechada,
                    decimal?	areaOcupada,
                    string	fondo,
                    string frente,
                    string derecha,
                    string izquierdo,
                    short?	numPiso,
                    decimal?	dormitorio1,
                    decimal?	dormitorio2,
                    decimal?	dormitorio3,
                    decimal?    dormitorio4,
                    decimal?	banio1,
                    decimal?	banio2,
                    decimal?	banio3,
                    decimal?	comedor,
                    decimal?	sala,
                    decimal?	salaComedorCocina,
                    decimal?	salaComedor,
                    decimal?	cocina,
                    decimal?	patio,
                    decimal?	labanderia,
                    decimal?	patioLabanderia,
                    decimal?	zonaComun,
                    decimal  montoSeparacion,
                   
                    short	dormitorios,
                    short	banio,
                    int	usuarioCre,
                    string cordenadas)
        {


this.idInternal=idInternal;
this.codigo=codigo;
this.descripcion=descripcion;

this.idLocalizacion=idLocalizacion;
this.idTipoBloquePiso=idTipoBloquePiso;
this.idTipoModelo=idTipoModelo;
this.idEtapa=idEtapa;
this.idTipoUI=idTipoUI;
this.idEstado=idEstado;
this.comentario=comentario;
this.plazoMaxEntrega=plazoMaxEntrega;
this.fechaFin=fechaFin;
this.bitActivo=bitActivo;
this.numPartida=numPartida;
this.direccion=direccion;
this.referencia=referencia;
this.urbanizacion = urbanizacion;
this.idAtributo = idAtributo;
this.idMoneda=idMoneda;
this.precio=precio;
this.areaTerreno=areaTerreno;
this.areaTechada=areaTechada;
this.areaOcupada=areaOcupada;
this.fondo=fondo;
this.frente=frente;
this.derecha=derecha;
this.izquierdo=izquierdo;
this.numPiso=numPiso;
this.dormitorio1=dormitorio1;
this.dormitorio2=dormitorio2;
this.dormitorio3=dormitorio3;
this.dormitorio4 = dormitorio4;
this.banio1=banio1;
this.banio2=banio2;
this.banio3=banio3;
this.comedor=comedor;
this.sala=sala;
this.salaComedorCocina=salaComedorCocina;
this.salaComedor=salaComedor;
this.cocina=cocina;
this.patio=patio;
this.labanderia=labanderia;
this.patioLabanderia=patioLabanderia;
this.zonaComun=zonaComun;
this.montoSeparacion = montoSeparacion;

this.dormitorios=dormitorios;
this.banio=banio;
this.fechaCre=DateTime.Now;
this.fechaMod=DateTime.Now;
this.usuarioCre=usuarioCre;
this.usuarioMod = usuarioCre;
this.mapCordenada = cordenadas;
this.shape = 1;

            _db.UIs.InsertOnSubmit(this);

            return true;

        }

        public bool SetUpdate(dbGestionDataContext _db,
                             string codigo,
                    string descripcion,
                
                    int idTipoUI,
                    int idLocalizacion,
                    int idTipoBloquePiso,
                    int idTipoModelo,
                    string comentario,
                    int plazoMaxEntrega,
                    DateTime fechaFin,
                    bool bitActivo,
                    string numPartida,
                    string direccion,
                    string referencia,
                    string urbanizacion,
                    int idAtributo,
                    int idMoneda,
                    decimal precio,
                    decimal? areaTerreno,
                    decimal? areaTechada,
                    decimal? areaOcupada,
                    string fondo,
                    string frente,
                    string derecha,
                    string izquierdo,
                    short? numPiso,
                    decimal? dormitorio1,
                    decimal? dormitorio2,
                    decimal? dormitorio3,
                    decimal? dormitorio4,
                    decimal? banio1,
                    decimal? banio2,
                    decimal? banio3,
                    decimal? comedor,
                    decimal? sala,
                    decimal? salaComedorCocina,
                    decimal? salaComedor,
                    decimal? cocina,
                    decimal? patio,
                    decimal? labanderia,
                    decimal? patioLabanderia,
                    decimal? zonaComun,
                    decimal montoSeparacion,
                    short dormitorios,
                    short banio,
                    int usuarioMod,
                    string cordenadas)
        {
            this.idInternal = idInternal;
            this.codigo = codigo;
            this.descripcion = descripcion;
           
         
            this.idLocalizacion = idLocalizacion;
            this.idTipoBloquePiso = idTipoBloquePiso;
            this.idTipoModelo = idTipoModelo;
            this.idTipoUI = idTipoUI;
            this.idEstado = idEstado;
            this.comentario = comentario;
            this.plazoMaxEntrega = plazoMaxEntrega;
            this.fechaFin = fechaFin;
            this.bitActivo = bitActivo;
            this.numPartida = numPartida;
            this.direccion = direccion;
            this.referencia = referencia;
            this.urbanizacion = urbanizacion;
            this.idAtributo = idAtributo;
            this.idMoneda = idMoneda;
            this.precio = precio;
            this.areaTerreno = areaTerreno;
            this.areaTechada = areaTechada;
            this.areaOcupada = areaOcupada;
            this.fondo = fondo;
            this.frente = frente;
            this.derecha = derecha;
            this.izquierdo = izquierdo;
            this.numPiso = numPiso;
            this.dormitorio1 = dormitorio1;
            this.dormitorio2 = dormitorio2;
            this.dormitorio3 = dormitorio3;
            this.dormitorio4 = dormitorio4;
            this.banio1 = banio1;
            this.banio2 = banio2;
            this.banio3 = banio3;
            this.comedor = comedor;
            this.sala = sala;
            this.salaComedorCocina = salaComedorCocina;
            this.salaComedor = salaComedor;
            this.cocina = cocina;
            this.patio = patio;
            this.labanderia = labanderia;
            this.patioLabanderia = patioLabanderia;
            this.zonaComun = zonaComun;
           
            this.dormitorios = dormitorios;
            this.banio = banio;
            this.montoSeparacion = montoSeparacion;
            this.fechaMod = DateTime.Now;
            
            this.usuarioMod = usuarioMod;
            this.mapCordenada = cordenadas;

            return true;

        }


        public void SetUpdateEstado(int idEstado)
        {
            this.idEstado = idEstado;
        }
                
    }
}
